// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import BaseClass from '@api/daguan/model/DaguanProgramDto'
import EditClass from '@api/daguan/model/DaguanProgramPublishReq'
import API from './API'

const WORD = '节目'
const EDIT = '发布'
const PASS = '审核'
const REJ = '撤销'
const MIDDLE = '此'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    MENU: ['__详情__', WORD], // 菜单
    ...API,
  },

  /**
   * 映射
   */
  MAP: {
    WORD, // 词语
    EDIT, // 修改
    PASS, // 通过
    REJ, // 拒绝
    MIDDLE, // 中间

    // 必须的字段，有值才会显示弹窗
    REQUIRED_KEY: 'id',

    // 弹窗属性
    MODEL_PROPS: {
      medium: true,
      title: `${WORD}详情`,
      bgClose: true,
    },

    /**
     * 按钮配置
     */
    BTNS: {
      0: ['show', 'pass'],
      1: ['show', 'edit'],
      2: ['show', 'rej'],
      // 3: ['show', 'edit'],
      // 4: ['show', 'edit'],
      // 5: ['show'],
      // 6: ['show', 'edit', 'rej'],
      7: ['show'],
    },
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 状态
     */
    STATUS: [
      [0, '待审核', '', '红'],
      [1, '待发布', '', '金'],
      [2, '已发布', '', '绿'],
      // [3, '播放中', '', '蓝'],
      // [4, '已下架', '', '灰'],
      // [5, '已删除', '', '灰'],
      // [6, '已过期', '', '灰'],
      [7, '审核失败', '', '灰'],
    ],

    /**
     * 类型
     */
    TYPE: [
      [1, '轮播'],
      [2, '插播'],
    ],

    /**
     * 是否
     */
    YES: [
      [1, '是'],
      [0, '否'],
    ],
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: 'startOne', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. setOne() 合并时使用
   * 3. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, EditClass, {
    page: 1,
    pageSize: 1,
    deviceList: [], // 设备列表
  }),
}
